Le Wake-on-LAN (WOL) ou mise en marche du PC depuis le réseau est une technologie développée par AMD et IBM, permettant à un ordinateur mis en veille d'être démarré à distance par l'envoi d'un « magic-packet » sur la carte réseau supportant le Wake-on-LAN.
Sur les ordinateurs récents, l'arrêt complet de l'ordinateur est possible. En effet, l'alimentation est toujours présente et la carte-mère est généralement en veille. D'ailleurs un voyant sur près du connecteur réseau signale la présence d'une activité, même ordinateur éteint.
Pour que le WOL soit possible il faut activer l'option correspondante dans votre bios. Suivant la version/fabricant de votre BIOS l'option se nomme différemment : Power On PCI, Wake On Network,…
Il faut maintenant paramétrer la carte réseau pour qu'elle réagisse au signal "Wake-on-lan" qu'on appelle aussi paquet "magique" (magic packet).
Note : Je ne suis pas arrivé à paramétrer le WOL une fois pour toute dans la mémoire morte de la carte réseau. Une solution (pas très propre) consiste à exécuter un script au démarrage et/ou à l'arrêt de l'ordinateur et/ou de l'interface réseau.
Je ne suis jamais arrivé à écrire dans l'EEPROM de ma carte réseau pour qu'elle
sudo gedit /etc/network/interfaces
et ajouter
pre-down /usr/sbin/ethtool -s eth0 wol g
puis on fini avec l'extinction:
éditez
sudo gedit /etc/default/halt
et ajoutez
WOL=1
puis éditez
sudo gedit /etc/init.d/halt
Juste avant la ligne
log_action_msg "Will now halt"
ajoutez
# dont shut interfaces down if WOL=1
wol="-i"
if [ "$WOL" = "1" ]
then
wol=""
fi
Puis remplacez la ligne
halt -d -f -i $poweroff $hddown
par :
halt -d -f $wol $poweroff $hddown
Voilà, y'a peut-être des choses en doubles ou y'a peut-être plus simple/facile/optimisé, mais je pense que cette méthode marche pas mal. Peut-être à mettre sur le wiki, mais j'ai pas encore regardé comment faire, ni même si c'est assez complet pour l'y faire figurer… enfin d'ici la, bon wol. Pitch ;)
Testée avec Feisty,fonctionne sous Gusty
En essayant les méthodes précédentes, j'en suis venu à ne modifier qu'un seul fichier pour avoir un Wake On Lan qui fonctionne. Comme les drivers de cartes réseau ont tendance, en se chargeant, à désactiver le WOL, nous allons tout simplement activer le WOL sur n'importe quel évènement réseau, que ce soit start, stop, restart ou force-reload.
Pour cela, éditons /etc/init.d/networking :
sudo gedit /etc/init.d/networking
Et ajoutons ethtool -s eth0 wol g à la fin de chaque fonction (attention, votre carte réseau n'est peut etre pas identifiée sous eth0 mais eth1, pensez à faire la modification dans les commandes, afin de savoir tapez dans un terminal: ifconfig vous aurez descriptif des interfaces réseau en service sur votre machine), ce qui donne :
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: networking
# Required-Start: mountkernfs ifupdown $local_fs
# Required-Stop: ifupdown $local_fs
# Default-Start: S
# Default-Stop: 0 6
### END INIT INFO
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
[ -x /sbin/ifup ] || exit 0
. /lib/lsb/init-functions
case "$1" in
start)
log_action_begin_msg "Configuring network interfaces"
type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 120" || true
if [ "$VERBOSE" != no ]; then
if ifup -a; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
else
if ifup -a >/dev/null 2>&1; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
fi
type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 15" || true
#ajout ici!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ethtool -s eth0 wol g
;;
stop)
if sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\2/p' /proc/mounts |
grep -qE '^(nfs[1234]?|smbfs|ncp|ncpfs|coda|cifs)$'; then
log_warning_msg "not deconfiguring network interfaces: network shares still mounted."
#ajout ici!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ethtool -s eth0 wol g
exit 0
fi
log_action_begin_msg "Deconfiguring network interfaces"
if [ "$VERBOSE" != no ]; then
if ifdown -a --exclude=lo; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
else
if ifdown -a --exclude=lo >/dev/null 2>/dev/null; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
fi
#ajout ici!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ethtool -s eth0 wol g
;;
force-reload|restart)
log_action_begin_msg "Reconfiguring network interfaces"
ifdown -a --exclude=lo || true
if ifup -a --exclude=lo; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
#ajout ici!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ethtool -s eth0 wol g
;;
*)
echo "Usage: /etc/init.d/networking {start|stop|restart|force-reload}"
#ajout ici!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ethtool -s eth0 wol g
exit 1
;;
esac
#ajout ici!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ethtool -s eth0 wol g
exit 1
Et voilà! Que le réseau soit démarré, arrêté, redémarré ou rechargé, le wol sera réactivé, ce qui lui permet notamment de rester activé à l'arrêt de l'ordinateur.
Contributeurs : Dwan, Hipopo.